// 提供复用逻辑的函数(钩子)  hook  封装逻辑，提供响应式数据
import { useIntersectionObserver } from '@vueuse/core'
import { ref } from 'vue'

export const useLazyData = (apiFn) => {
  // 应该有监听的对象，还有进行的不同操作
  const target = ref(null)
  const result = ref([])
  const { stop } = useIntersectionObserver(
    target,
    ([{ isIntersecting }], observerElement) => {
      if (isIntersecting) {
        stop()
        // 调用api获取数据 ()=> return findbrand()
        apiFn().then((data) => {
          result.value = data.result
        })
      }
    },
    // 配置选项,相交的比例大于0
    { threshold: 0 }
  )
  //   将目标dom和数据返回
  return { target, result }
}
